// pages/goods_list/index.js
// 引入用来发送请求的 方法 一定要把路径补全
import {request} from '../../request/index.js'
import regeneratorRuntime from '../../lib/runtime/runtime'



Page({

    /**
     * 页面的初始数据
     */
    data: {
        tabs:[
            {
                id:0,
                value:"综合",
                isActive:true
            },
            {
                id: 1,
                value: "销量",
                isActive: false
            },
            {
                id: 0,
                value: "价格",
                isActive: false
            },
        ],
        // 商品列表数组
        goodsList:[]

    },
    // 请求商品类表数据需要的参数
    queryParams:{
        query:"",
        cid:"",
        pagenum:1,
        pagesize:10


    },
    // 总页数变量
    totalpages:0,

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        console.log(options);
        this.queryParams.cid=options.cid || "";
        this.queryParams.query=options.query || "";
        this.getGoodsList();

    },





    // 标题点击事件触发的函数 数据从子组件传过来
    handleTabsItemChange(e){
        // 1、获取被点击标题的索引
        // console.log(e)
        const {index} = e.detail;
        // console.log(index)
        // 2、修改原数组
        let {tabs} = this.data;
        tabs.forEach(
            (v,i)=>i===index?v.isActive=true:v.isActive=false
            
           )
        //    3、吧修改后的原数组赋值回去
        this.setData({
            tabs
        })
    },




    // 获取商品列表数据的函数
    async getGoodsList(){
      var res=  await request({url:"/goods/search",data:this.queryParams});
    //   console.log(res);
    // 获取总页数
    const totalpages=Math.ceil(res.total/this.queryParams.pagesize);
    this.totalpages=totalpages;
 
    // console.log(totalpages);
    this.setData({
        // goodsList:res.goods
        // 拼接数组
        goodsList:[...this.data.goodsList,...res.goods]
    })
    // 数据请求并关闭下拉刷新窗口 如果没有调用下拉刷新的窗口 直接接关闭也不会报错
    wx.stopPullDownRefresh()

    },



// 1、用户上滑页面滚动条触底 开始加载下一页数据
//     1）找到滚动条触底事件 微信小程序官方开发文档里寻找
//     2）判断改有没有下一页数据
//         2.1）获取总页数 只有总条数
//         总页数=Math.ceil(总条数/页容量 pagesize)
//         2.2）获取当前的页码 pagenum
//         2.3)判断一下 当前的页码是否大于等于总页数
//         表示没有下一页的数据了
//     3）假如没有下一页数据了 就弹出提示
//     4）假如还有下一页数据 来加载下一页数据
//         4.1）当前页码++
//         4.2）重新发送请求
//         4.3）数据请求回来 要对data中的数组 进行拼接 而不是全部替换！！！


    // 上拉触底事件
    onReachBottom(){
        if(this.queryParams.pagenum>=this.totalpages){
            // 说明没有下一页数据了
            // console.log("没有下一页数据了")
            wx.showToast({
                title: '没有更多数据了！',
              })

        }else{
            // 还有下一页数据
            this.queryParams.pagenum++;
           
            // 从新发送请求
            this.getGoodsList()

            wx.showToast({
                title: '加载成功',
              })


        }
        // console.log("ok")
    },

// 2、下拉刷新页面效果
//     1）触发下拉刷新事件 需要在页面json文件中开启一个配置
//     找到 触发下拉刷新事件
//     2）重置 数据 数组
//     3）重置页码 设置为1 
//     4）重新发送请求
//     5）数据请求回来 需要手动的关闭 等待效果

    // 下拉刷新事件
    onPullDownRefresh(){
        // 重置数组
        this.setData({
            goodsList:[]

        })

        // 重置页码
        this.queryParams.pagenum=1;
        // 发送请求
        this.getGoodsList()
        
    }



   
})